The embodiments herein relate generally to an improved Web Server for facilitating the storage and retrieval of large medical images using HTML 5 technology in general, and in particular an inventive Web Server Cache design configured to implement the facilitating functionality, and to balance the load among a plurality of Web Servers when more than one is used.
By way of background, certain terms are used herein that are worth defining for the benefit of the reader. In that regard, a Web server can refer to either the hardware (the computer) or the software (the computer application) that helps to deliver web content that can be accessed through the Internet. The most common use of web servers is to host websites, but there are other uses such as gaming, data storage or running enterprise applications. The primary function of a web server is to retrieve web pages requested by clients using Hypertext Transfer Protocol (HTTP). This means delivery of HTML documents and any additional content that may be included by a document, such as images, style sheets and scripts.
A user agent, commonly a Web Browser or web crawler, initiates communication by making a request for a specific resource using HTTP and the server responds with the content of that resource or an error message if unable to do so. The resource is typically a real file on the server's secondary storage, but this is not necessarily the case and depends on how the Web Server is implemented. While the primary function is to serve content, a full implementation of HTTP also includes ways of receiving content from clients. This feature is used for submitting web forms, including the uploading of files and, in the case of embodiments of the present invention, asynchronous JavaScript and XML (AJAX) request (see, e.g., http://en.wikipedia.org/wiki/Ajax_(programming)).
Many generic Web Servers also support server-side scripting using Active Server Pages (ASP), PHP, or other scripting languages. This means that the behavior of the Web Server can be scripted in separate files, while the actual server software remains unchanged. Usually, this function is used to create HTML documents dynamically as opposed to returning static documents. The former is primarily used for retrieving and/or modifying information from databases. The latter is typically much faster and more easily cached.
Web Servers are not always used for serving the World Wide Web. They can also be found embedded in devices such as printers, routers, webcams and serving only a local network. The Web Server may then be used as a part of a system for monitoring and/or administering the device in question. This usually means that no additional software has to be installed on the client computer, since only a Web Browser is required.
A Web Browser is a software application for retrieving, presenting and traversing information resources on the World Wide Web. An information resource is identified by a Uniform Resource Identifier (URL) and may be a web page, image, video or other piece of content. Hyperlinks present in resources enable users easily to navigate their browsers to related resources. Although browsers are primarily intended to use the World Wide Web, they can also be used to access information provided by Web Servers in private networks or files in file systems. Examples of Web Browsers include Google Chrome™, Mozilla Firefox™, Internet Explorer™, Opera™, and Safari™.
HTML 5 is a markup language used for structuring and presenting content for the World Wide Web and is a core technology of the Internet. It is the fifth revision of the HTML standard (created in 1990 and standardized as HTML 4 as of 1997). Its core aims have been to improve the language with support for the latest multimedia while keeping it easily readable by humans and consistently understood by computers and devices (web browsers, parsers, etc.). HTML 5 is intended to subsume not only HTML 4, but also XHTML 1 and DOM Level 2 HTML.
Following its immediate predecessors HTML 4.01 and XHTML 1.1, HTML5 is a response to the fact that the HTML and XHTML in common use on the World Wide Web are a mixture of features introduced by various specifications, along with those introduced by software products such as web browsers, those established by common practice, and the many syntax errors in existing web documents. It is also an attempt to define a single markup language that can be written in either HTML or XHTML syntax. It includes detailed processing models to encourage more interoperable implementations; it extends, improves and rationalizes the markup available for documents, and introduces markup and application programming interfaces (APIs) for complex web applications. As explained below, this feature is employed in embodiments of the present invention as described in detail below because the HTML is used as front end of the web application that is written in JavaScript and runs within the browser. The HTML page retrieved by the browser therefore contains:                a. JavaScript code that implements the application's logic and based on user input dynamically retrieve information from the web server using AJAX request and update the interface.        b. The HTML 5 that defines the application's interface (button, text, layout and so forth). The content of the application interface is changed dynamically by the JavaScript that invokes the HTML 5 APIs, as well as creates and/or destroys HTML 5 objects        
Turning back to background information, traditionally load balancing is a computer networking method for distributing workloads across multiple computing resources, such as computers, a computer cluster, network links, central processing units or disk drives. Load balancing aims to optimize resource use, maximize throughput, minimize response time, and avoid overload of any one of the resources. Using multiple components with load balancing instead of a single component may increase reliability through redundancy. Load balancing is usually provided by dedicated software or hardware, such as a multilayer switch or a Domain Name System server Process.
Digital Imaging and Communications in Medicine (DICOM) is a standard for handling, storing, printing, and transmitting information in medical imaging. It includes a file format definition and a network communications protocol. DICOM enables the integration of scanners, servers, workstations, printers, and network hardware from multiple manufacturers into a picture archiving and communication system (PACS). The different devices come with DICOM conformance statements that identify which DICOM classes they support. DICOM has been widely adopted by hospitals and is making inroads in smaller applications like dentists' and doctors' offices.
In hospital settings, it is very common to view medical images provided on a Web Server that functions, among others, to archive and process digital images (i.e., an image archive) using a Web Browser to view the images. The medical images are most often in DICOM formatting, which are typically very large size files. Referring to FIGS. 1A and 1B, DICOM images (or other formatted files) are stored on a DICOM archive 1 (or an archive or other formatter files), which is connected via a DICOM network, or other Internet or network pathway 2, to a dedicated Web Server 3, which then processes the images for transmission to a computer 4 using a Web Browser 5 employing HTML to a viewer, such as a computer monitor 6. In some cases, the images are stored on a remote website accessible by the clinician through the computer or on local memory associated with the clinician's computer.
DICOM images store a value which is up to 16 bits per each pixel (and therefore from 0 to 65536), while jpeg images only 8 bit (and therefore from 0 to 256). This is important because normal computer monitors can often only display 256 values. Therefore, when a DICOM image is displayed, the system must determine how to map the 16 bits values from 0 to 65536 into 256 values. This operation is called “window level” and is done very frequently to medical images. It visually allows changing the brightness and contrast of the image. The window level is typically set by the doctor in order to see specific anatomy on the image. While viewing medical images, clinicians often change the display parameters (such as brightness, contrast, and zoom). Other operations include panning the image to visualize the most relevant part, and/or measuring the image.
Given the size of conventional DICOM image files, a conventional Web Browser is unable to retrieve and transmit the DICOM image. The HTML 4 standard allows a web page only to display an image that resides on the Web Server. This is accomplished with the “img” tag. Under this restriction the Web Server has to perform all the image operations such as pan, zoom and window level. Thus, many hospital computer systems employing HTML 4 language rely upon server-side rendering, which slows down the process.
Referring to FIG. 1B, an example of server-side rendering includes the manipulation of a DICOM image into a compressed image (e.g., jpeg) using the dedicated Web Server. The user's (or hospital system's) Web Browser, which is capable of transmitting jpeg images, can then be used to retrieve the image, whereby the client may then enhance the image by varying its quality and/or effects. With this infrastructure, the Web Server functions as a rendering engine that produces images more easily accessed and transmitted by the Web Browser. As such, the Web Browser is not directly accessing the image file in the Web Server's cache, but rather the “rendered” version of the original image file as processed by the dedicated Web Server. A typical transaction may proceed as follows: the Web Browser requests to view an image; the image is transferred from the DICOM archive to the Web Server; the image is converted to jpeg (or equivalent) and made available to the Web Browser; the Web Browser requests that certain operations (rendering) be applied to the images; the Web Server applies the requested operations, and the Web Server makes the transformed images (e.g., converted jpeg images) available to the Web browser 6, which can then be used by the user to view the images.
The new HTML 5 standard permits a web page to generate and display images without having to request them from the Web Server. This is accomplished with the “canvas” tag. Embodiments of the invention, as explained further below, take advantage of this, and other features so that the Web Browser, and more specifically the JavaScript code included in the web page, can be used to retrieve the 16-bit data of the image to display from the Web Server and display the image applying the display parameters set by the user (window level, pan and zoom) locally. The display-dependent operations are done locally with the Web Browser without requiring any processing from the dedicated Web Server.